from Cliente import*
from Processo import*
from ClienteController import*

Lista_Clientes = []
class RepositorioCliente:
	
    def __init__(self, pessoa, processo):
        self.pessoa = pessoa
        self.processo = processo
        self.lista_Pessoas = []

    def Add_Cliente(self):
        #Adicionar dados da Pessoa Lista_Pessoas
        
            #Adicionando dados pessoais do cliente
        self.lista_Pessoas.append(self.pessoa.getNomeCliente())
        self.lista_Pessoas.append(self.pessoa.getRG())
        self.lista_Pessoas.append(self.pessoa.getOrgaoE())
        self.lista_Pessoas.append(self.pessoa.get_CPF().getCpf())
        self.lista_Pessoas.append(self.pessoa.get_End().getLogradouro())
        self.lista_Pessoas.append(self.pessoa.get_End().getNumero())
        self.lista_Pessoas.append(self.pessoa.get_End().getCEP())
        self.lista_Pessoas.append(self.pessoa.get_End().getComplemento())
        self.lista_Pessoas.append(self.pessoa.get_End().getCidade())
        self.lista_Pessoas.append(self.pessoa.get_End().getEstado())
        self.lista_Pessoas.append(self.pessoa.get_End().getBairro())
        self.lista_Pessoas.append(self.pessoa.get_End().getTelefone())
        self.lista_Pessoas.append(self.pessoa.get_End().getCelular())
        self.lista_Pessoas.append(self.pessoa.getEmail())
    
    def Add_Processo(self):
            #Adicionando dados do Processo
        self.lista_Pessoas.append(self.processo.getNumeroProcesso())
        self.lista_Pessoas.append(self.processo.getTipo())
        self.lista_Pessoas.append(self.processo.getCidadeProcesso())
        self.lista_Pessoas.append(self.processo.getVara())
        self.lista_Pessoas.append(self.processo.getJuiz())
        self.lista_Pessoas.append(self.processo.getFase())


    def Add_ParteContraria(self):
            #Adicionando dados da Parte Contraria
        self.lista_Pessoas.append(self.processo.getParte().getNomeParte())
        self.lista_Pessoas.append(self.processo.getParte().get_CPFCNPJ().getCpf())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getLogradouro())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getNumero())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getCEP())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getComplemento())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getCidade())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getEstado())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getBairro()) 
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getTelefone())
        self.lista_Pessoas.append(self.processo.getParte().get_Endereco().getCelular())  

    
    def Add_Advogado(self):
            #Adicionando dados do Advogado
        self.lista_Pessoas.append(self.processo.getAdvogado().getNomeAdvogado())
        self.lista_Pessoas.append(self.processo.getAdvogado().getOAB())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getLogradouro())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getNumero())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getCEP())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getComplemento())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getCidade())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getEstado())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getBairro())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getTelefone())
        self.lista_Pessoas.append(self.processo.getAdvogado().get_Endereco().getCelular())

   

    def Colocar_BancoDados(self):
        Lista_Clientes.append(self.lista_Pessoas)
				        
        def Verificar_Vazio(Lista):
            for termo in Lista:
                for i, x in enumerate(termo):
                    if x == u"":
                        termo[i] = "-"
            return Lista

        Verificar_Vazio(Lista_Clientes)
	#aqui

        #Adicionar Lista_Clientes ao Arquivo
        for i in Lista_Clientes:
			Adicionar=open('C:\Users\douglas.melo\Desktop\Codigos\Banco de Dados\cadrasto.txt','a+')
			Adicionar.write("DADOS PESSOAIS DO CLIENTE" + "\n"
						"Nome: "+i[0] + "\n"
						"RG: " + i[1] + "\n"
						"OrgaoE: " + i[2] + '\n'
						"CPF: " + i[3] + "\n"
						"Rua: " +(i[4]) + "\n"
						"Numero: " +i[5] + "\n"
						"CEP: " +i[6] + "\n"
						"complemento: " +i[7] + "\n"
						"cidade: " +i[8] + "\n"
						"Estado: " +i[9] + "\n"
						"bairro: " +i[10] + "\n"
						"Telefone Fixo: " +i[11] + "\n"
						"Celular: " +i[12] + "\n"
						"Email: " +i[13] + "\n"
						+"\n" +"-"*30+ "\n"
						"Dados Processo" + "\n"
						"Numero Processo: " +i[14] + "\n"
						"Tipo: " +i[15] + "\n"
						"Cidade Processo: " +i[16] + "\n"
						"Vara: " +i[17] + "\n"
						"Juiz: " +i[18] + "\n"
						"Fase: " +i[19] + "\n"
						+"\n" +"-"*30+ "\n"
						"Parte Contraria" + "\n"
						"Nome Parte: " +i[20] + "\n"
						"CPF: " + i[21] + "\n"
						"Rua: " +(i[22]) + "\n"
						"Numero: " +i[23] + "\n"
						"Complemento: " +i[24] + "\n"
						"Cidade: " +i[25] + "\n"
						"Bairro: " +i[26] + "\n"
						"Estado: " +i[27] + "\n"
						"Cep: " +i[28] + "\n"
						"Telefone Fixo : " +i[29] + "\n"
						"Celular : " +i[30] + "\n"
						+"\n" +"-"*30+ "\n"
						"Advogado Parte" + "\n"
						"Nome Advogado: " +i[31] + "\n"
						"OAB: " + i[32] + "\n"
						"Rua: " +(i[33]) + "\n"
						"Numero: " +i[34] + "\n"
						"Complemento: " +i[35] + "\n"
						"Cidade: " +i[36] + "\n"
						"Bairro: " +i[37] + "\n"
						"Estado: " +i[38] + "\n"
						"Cep: " +i[39] + "\n"
						"Telefone Fixo : " +i[40] + "\n"
						"Celular : " +i[41] + "\n")
 			Adicionar.close()

			Adicionar2=open('C:\Users\douglas.melo\Desktop\Codigos\Banco de Dados\clientes.txt','a+')
			Adicionar2.write(i[0] +" | "+ i[1] +' | '+ i[2] + ' | '+ i[3] + ' | '+ i[4] + ' | '+
			    i[5] +" | "+ i[6] +' | '+ i[7] + ' | '+ i[8] + ' | '+ i[9] + ' | '+
			    i[10] +" | "+ i[11] +' | '+ i[12] + ' | '+ i[13] + ' | '+ i[14] + ' | '+
			    i[15] +" | "+ i[16] +' | '+ i[17] + ' | '+ i[18] + ' | '+ i[19] + ' | '+
			    i[20] +" | "+ i[21] +' | '+ i[22] + ' | '+ i[23] + ' | '+ i[24] + ' | '+
			    i[25] +" | "+ i[26] +' | '+ i[27] + ' | '+ i[28] + ' | '+ i[29] + ' | '+
			    i[30] +" | "+ i[31] +' | '+ i[32] + ' | '+ i[33] + ' | '+ i[34] + ' | '+
			    i[35] +" | "+ i[36] +' | '+ i[37] + ' | '+ i[38] + ' | '+ i[39] + ' | '+
			    i[40] +" | "+ i[41] + "\n") 
			Adicionar2.close()

			persistecliente = ClienteController(i[0],int(i[1]),i[2],int(i[3]),i[4],int(i[5]),int(i[6]),int(i[7]),i[8],i[9],i[10],int(i[11]),int(i[12]),i[13])
			persistecliente.insere(i[0],int(i[1]),i[2],int(i[3]),i[4],int(i[5]),int(i[6]),int(i[7]),i[8],i[9],i[10],int(i[11]),int(i[12]),i[13])
    del Lista_Clientes[:]

    def Criar_Lista(self):
        if Lista_Clientes != []:
            return Lista_Clientes
            
        else:
            arquivo = open('C:\Users\douglas.melo\Desktop\Codigos\Banco de Dados\clientes.txt','r')
            Cliente_Arquivo = arquivo.readlines()
            arquivo.close()

            String_Cliente= []
            
            for i in Cliente_Arquivo:
                x=i.replace("\n","")
                y=x.split(" | ")
                String_Cliente.append(y)

            return String_Cliente


    def CriaDicionario(self,lista):
        dic = {}
        for i, x in enumerate(lista):
            dic[i+1] = (x[0], x[16], x[17], x[14], x[19])
        return dic
        
    